package com.sinochem.yunlian.ship.api.vo.trace;

import lombok.Data;
import org.apache.commons.lang.builder.ToStringBuilder;

import javax.validation.constraints.Pattern;
import java.util.Date;
import java.util.List;

/**
 * @Auther: zzd
 * @Dscription: 货主或者船东添加运单
 *   单独添加：谁添加就只针对谁可见
 *   自动生成：2者都可见
 * @Date: Create in 2017/11/20 19:11
 **/
@Data
public class TrcWaybillInfo {

    //运单id
    private Long id;
    //运单No
    private String waybillNo;

    private Long chatGroupId;
    //是否自动创建群聊
    private boolean isAuto;
    /**
     * 订单ID
     */
    private Long orderId;
    /**
     * 订单NO
     */
    private String orderNo;

    /**
     * 货盘ID
     */
    private Long materialId;
    /**
     * 货盘NO
     */
    private String materialNo;

    /**
     * 货主公司ID
     */
    private Long cargoCompanyId;

    /**
     * 货主公司名称
     */
    private String cargoCompanyName;

    /**
     * 船东公司ID
     */
    private Long shipCompanyId;

    /**
     * 船舶所属公司名称
     */
    private String shipCompanyName;

    /**
     *  0 自动 1  货主; 2 船东
     */
    @Pattern(regexp="^(0|1|2)$",message="类型值不正确")
    private Integer type;

    /**
     * 船舶ID
     */
    private Long shipId;

    /**
     * 船舶名称
     */
    private String shipName;
    /**
     * 联系人(达成配置的，填写货主公司联系人)
     */
    private String contactName;

    /**
     * 联系人号码(达成配置的，填写货主公司联系人号码)
     */
    private String contactPhone;
    /**
     * 联系人公司名称(达成配置的，填写货主公司名称)
     */
    private String contactCompanyName;

    /**
     * 纸质合同编号
     */
    private String offlineContractNo;

    /**
     * 线下合同附件地址
     */
    private String offlineContractUrl;
    /**
     * 线下合同附件地址
     */
    private String offlineContractName;

    /**
     * 备注
     */
    private String remark;

    private Long createBy;

    private String createName;

    //报价id
    private Long bidId;
    //报价人
    private Long bidCreateBy;


    private Date createTime;

    //完成时间
    private Date completedTime;

    /**
     * 航线lists
     */
    List<WaybillLineInfoForm>  lineInfoForms;

    @Override
    public String toString(){
        return ToStringBuilder.reflectionToString(this);
    }

}
